package com.ruoyi.project.mtool.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
import java.util.Date;


/**
 * 客户产品关联对象 t_customer_product
 *
 * @author dwei
 * @date 2020-04-10
 */
public class CustomerProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private Long id;

    /** 客户id */
    @Excel(name = "客户id")
    private Long customerId;

    /** 产品id */
    @Excel(name = "产品id")
    private Long productId;

    /** 发布模式 */
    @Excel(name = "发布模式")
    private String releaseType;

    /** 首次发布 */
    @Excel(name = "首次发布", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date releaseTime;

    /** 发布状态 */
    @Excel(name = "发布状态")
    private String releaseStatus;

    /** 预计发布 */
    private Date releasePlanTime;

    /** 准备进度 */
    private String readyStatus;

    /** 产品实际使用url */
    @Excel(name = "产品实际使用url")
    private String productUrl;

    /** 需求状态（0正常 1停用） */
    @Excel(name = "需求状态", readConverterExp = "0=正常,1=停用")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setCustomerId(Long customerId)
    {
        this.customerId = customerId;
    }

    public Long getCustomerId()
    {
        return customerId;
    }
    public void setProductId(Long productId)
    {
        this.productId = productId;
    }

    public Long getProductId()
    {
        return productId;
    }
    public void setReleaseType(String releaseType)
    {
        this.releaseType = releaseType;
    }

    public String getReleaseType()
    {
        return releaseType;
    }
    public void setReleaseTime(Date releaseTime)
    {
        this.releaseTime = releaseTime;
    }

    public Date getReleaseTime()
    {
        return releaseTime;
    }
    public void setReleaseStatus(String releaseStatus)
    {
        this.releaseStatus = releaseStatus;
    }

    public String getReleaseStatus()
    {
        return releaseStatus;
    }
    public void setReleasePlanTime(Date releasePlanTime)
    {
        this.releasePlanTime = releasePlanTime;
    }

    public Date getReleasePlanTime()
    {
        return releasePlanTime;
    }
    public void setReadyStatus(String readyStatus)
    {
        this.readyStatus = readyStatus;
    }

    public String getReadyStatus()
    {
        return readyStatus;
    }
    public void setProductUrl(String productUrl)
    {
        this.productUrl = productUrl;
    }

    public String getProductUrl()
    {
        return productUrl;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("customerId", getCustomerId())
                .append("productId", getProductId())
                .append("releaseType", getReleaseType())
                .append("releaseTime", getReleaseTime())
                .append("releaseStatus", getReleaseStatus())
                .append("releasePlanTime", getReleasePlanTime())
                .append("readyStatus", getReadyStatus())
                .append("productUrl", getProductUrl())
                .append("remark", getRemark())
                .append("status", getStatus())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
